Modern day businesses cannot function efficiently without use of state of the art technology. Specifically, computers and software are an almost essential part of most of the businesses in developed economies. Typically, businesses use a number of off the shelf business applications, such as Excel® as well a number of custom applications specifically designed for a particular aspect of the business. There are a number of industry specific software applications that are developed by software companies to be used in a particular type of businesses, such as financial services, medical services, etc.
While such industry specific software applications are generally designed with specific characteristics of particular type of business in mind, they still need to be modified to be more suitable for use by the end user. Customer relationship management (CRM) software is one such example of a business application that is often modified by either the end user or by an independent software vendor specializing in this particular type of software.
Since the development of the Internet, businesses typically use web based applications to provide distributed business solution on the Internet. In a typical web based application, a three-tier platform is used to implement the business application, wherein a web browser is the client tier, a database containing various business data used by the application is the back-end tier, and a web server and its extensions became the middle tier. The middle tier, often also known as the middleware, is responsible for a number of functionalities including, but not limited to, reading data, writing data, data access authorization, relationship validation, etc.
Middleware used for business applications demand highly customizable solutions for managing business data. Typical processes in such an application include various processes for authorization, maintaining data integrity, applying business rules, etc. Business applications also requires enforcing various relationship constraints amongst business entities during various cascading operations for security, reorganization of business divisions, updates/deletes to heterogeneous objects hierarchies, etc. As referred to in here, an entity is a metadata description of a real world concept, such as a customer or a product. The term entity and the term class can be used interchangeably to mean such definition or description of such real world concepts. An entity instance, or just an instance, is the physical data describing a particular member of the set of such entities. Similarly, a relationship constraint is a set of rules that govern how a particular relationship between two entities is traversed while performing business logic. On the other hand, cascading operations are operations related to business logic that automatically traverse various entity relationship constraints.
All cascading operations can occur on both connected and disconnected clients. However, the subset of cascading operations which change data are only trusted when they occur on the central application server. Thus, allowing customization of business processes and entity schema creates several challenges with respect to cascading operations. Therefore, there is a need to provide better middle tier platform for providing customizable business solution for managing business data.